!function () {
  var change = 'orientationchange' in window ? 'orientationchange' : 'resize';
  calculate();
  window.addEventListener(change, calculate, false);
  function calculate() {
      var dpr, rem;
      var docEl = document.documentElement;
      if (!dpr) { //来自淘宝
          var isAndroid = window.navigator.appVersion.match(/android/gi);
          var isIPhone = window.navigator.appVersion.match(/iphone/gi);
          var devicePixelRatio = window.devicePixelRatio;
          if (isIPhone) {
              // iOS下，对于2和3的屏，用2倍的方案，其余的用1倍方案
              if (devicePixelRatio >= 3 && (!dpr || dpr >= 3)) {
                  dpr = 3;
              } else if (devicePixelRatio >= 2 && (!dpr || dpr >= 2)) {
                  dpr = 2;
              } else {
                  dpr = 1;
              }
          } else {
              // 其他设备下，仍旧使用1倍的方案
              dpr = 1;
          }
      }
      rem = docEl.clientWidth * dpr / 7.5;

      // 设置data-dpr属性，留作的css hack之用
      docEl.setAttribute('data-dpr', dpr);

      // 动态写入样式
      docEl.style.fontSize = rem + 'px';
      // 给js调用的，某一dpr下rem和px之间的转换函数
      window.rem2px = function(v) {
          v = parseFloat(v);
          return v * rem;
      };
      window.px2rem = function(v) {
          v = parseFloat(v);
          return v / rem;
      };

      window.dpr = dpr;
      window.rem = rem;
  }
}()
